#ifndef __ZCODE_OPS_H__
#define __ZCODE_OPS_H__

static void __illegal__();
static void __extended__();

static void z_add();
static void z_and();
static void z_art_shift();
static void z_buffer_mode();
static void z_buffer_screen();
static void z_call_n();
static void z_call_s();
static void z_check_arg_count();
static void z_check_unicode();
static void z_clear_attr();
static void z_copy_table();
static void z_dec();
static void z_dec_chk();
static void z_div();
static void z_draw_picture();
static void z_encode_text();
static void z_erase_line();
static void z_erase_picture();
static void z_erase_window();
static void z_get_child();
static void z_get_cursor();
static void z_get_next_prop();
static void z_get_parent();
static void z_get_prop();
static void z_get_prop_addr();
static void z_get_prop_len();
static void z_get_sibling();
static void z_get_wind_prop();
static void z_inc();
static void z_inc_chk();
static void z_input_stream();
static void z_insert_obj();
static void z_jump();
static void z_je();
static void z_jg();
static void z_jin();
static void z_jl();
static void z_jz();
static void z_load();
static void z_loadb();
static void z_loadw();
static void z_log_shift();
static void z_make_menu();
static void z_mod();
static void z_mouse_window();
static void z_move_window();
static void z_mul();
static void z_new_line();
static void z_nop();
static void z_not();
static void z_or();
static void z_output_stream();
static void z_picture_data();
static void z_picture_table();
static void z_piracy();
static void z_pop_stack();
static void z_print();
static void z_print_addr();
static void z_print_char();
static void z_print_form();
static void z_print_num();
static void z_print_obj();
static void z_print_paddr();
static void z_print_ret();
static void z_print_table();
static void z_print_unicode();
static void z_pull();
static void z_push();
static void z_push_stack();
static void z_put_prop();
static void z_put_wind_prop();
static void z_quit();
static void z_random();
static void z_read();
static void z_read_char();
static void z_read_mouse();
static void z_remove_obj();
static void z_ret();
static void z_ret_popped();
static void z_restart();
static void z_restore();
static void z_restore_undo();
static void z_rfalse();
static void z_rtrue();
static void z_save();
static void z_save_undo();
static void z_scan_table();
static void z_scroll_window();
static void z_set_attr();
static void z_set_colour();
static void z_set_cursor();
static void z_set_font();
static void z_set_margins();
static void z_set_text_style();
static void z_set_true_colour();
static void z_set_window();
static void z_show_status();
static void z_sound_effect();
static void z_split_window();
static void z_store();
static void z_storeb();
static void z_storew();
static void z_sub();
static void z_test();
static void z_test_attr();
static void z_throw();
static void z_tokenise();
static void z_verify();
static void z_window_size();
static void z_window_style();
static void z_143();
static void z_185();

static void (*op0_opcodes[0x10])()={
	z_rtrue,
	z_rfalse,
	z_print,
	z_print_ret,
	z_nop,
	z_save,
	z_restore,
	z_restart,
	z_ret_popped,
	z_185,
	z_quit,
	z_new_line,
	z_show_status,
	z_verify,
	__extended__,
	z_piracy
};
static void (*op1_opcodes[0x10])()={
	z_jz,
	z_get_sibling,
	z_get_child,
	z_get_parent,
	z_get_prop_len,
	z_inc,
	z_dec,
	z_print_addr,
	z_call_s,
	z_remove_obj,
	z_print_obj,
	z_ret,
	z_jump,
	z_print_paddr,
	z_load,
	z_143
};
static void (*var_opcodes[0x40])()={
	__illegal__,
	z_je,
	z_jl,
	z_jg,
	z_dec_chk,
	z_inc_chk,
	z_jin,
	z_test,
	z_or,
	z_and,
	z_test_attr,
	z_set_attr,
	z_clear_attr,
	z_store,
	z_insert_obj,
	z_loadw,
	z_loadb,
	z_get_prop,
	z_get_prop_addr,
	z_get_next_prop,
	z_add,
	z_sub,
	z_mul,
	z_div,
	z_mod,
	z_call_s,
	z_call_n,
	z_set_colour,
	z_throw,
	__illegal__,
	__illegal__,
	__illegal__,
	z_call_s,
	z_storew,
	z_storeb,
	z_put_prop,
	z_read,
	z_print_char,
	z_print_num,
	z_random,
	z_push,
	z_pull,
	z_split_window,
	z_set_window,
	z_call_s,
	z_erase_window,
	z_erase_line,
	z_set_cursor,
	z_get_cursor,
	z_set_text_style,
	z_buffer_mode,
	z_output_stream,
	z_input_stream,
	z_sound_effect,
	z_read_char,
	z_scan_table,
	z_not,
	z_call_n,
	z_call_n,
	z_tokenise,
	z_encode_text,
	z_copy_table,
	z_print_table,
	z_check_arg_count
};
static void (*ext_opcodes[0x20])()={
	z_save,
	z_restore,
	z_log_shift,
	z_art_shift,
	z_set_font,
	z_draw_picture,
	z_picture_data,
	z_erase_picture,
	z_set_margins,
	z_save_undo,
	z_restore_undo,
	z_print_unicode,
	z_check_unicode,
	z_set_true_colour,
	__illegal__,
	__illegal__,
	z_move_window,
	z_window_size,
	z_window_style,
	z_get_wind_prop,
	z_scroll_window,
	z_pop_stack,
	z_read_mouse,
	z_mouse_window,
	z_push_stack,
	z_put_wind_prop,
	z_print_form,
	z_make_menu,
	z_picture_table,
	z_buffer_screen,
	__illegal__,
	__illegal__
};

#endif
